package com.honghe.service;

import com.honghe.dto.PatientDTO;
import com.honghe.dto.PatientLoginDTO;
import com.honghe.dto.VisitDTO;
import com.honghe.entity.Department;
import com.honghe.entity.Patient;
import com.honghe.vo.DoctorVO;
import com.honghe.vo.PatOrderVO;
import com.honghe.vo.PatVisitVO;

import java.util.List;

public interface PatientService {
    /**
     * 注册病人
     * @param patientDTO
     */
    void addPatient(PatientDTO patientDTO);

    /**
     * 病人登录
     * @param patientLoginDTO
     * @return
     */
    Patient login(PatientLoginDTO patientLoginDTO);

    /**
     * 更新病人信息
     * @param patientDTO
     */
    void update(PatientDTO patientDTO);

    /**
     *挂号功能实现接口
     * @param visitDTO
     */
    PatOrderVO visit(VisitDTO visitDTO);

    /**
     * 根据科室id获取医生信息
     * @param deptId
     * @return
     */
    List<DoctorVO> getByDeptId(Long deptId);

    /**
     *  获取所有科室和对应的医生信息
     * @return
     */
    List<PatVisitVO> getAllDeptWithDoc();

    /**
     * 获取自己的所有挂号记录和信息
     * @return
     */
    List<PatOrderVO> getMyVisit(Long patId);

    /**
     * 举报接口
     * @param orderId
     */
    void updateStatus(Long orderId);
}
